﻿using B.S.BaseData.Domain;
using Microsoft.EntityFrameworkCore;
using SqlSugar;

namespace B.S.BaseData.Infraturvture
{
    /// <summary>
    /// 数据库上下文
    /// </summary>
    public class SCDbCotext : DbContext
    {
        public SqlSugarClient Db { get; }
        public SCDbCotext()
        {
            // 配置数据库连接字符串
            Db = new SqlSugarClient(new ConnectionConfig()
            {
                DbType = DbType.MySql, // 使用 SqlServer 数据库
                ConnectionString = "server=123.57.166.20;port=3306;user=root;password=123456;database=text;", // 请根据实际数据库配置修改
                IsAutoCloseConnection = true, // 自动关闭连接
                InitKeyType = InitKeyType.Attribute, // 使用实体类中的注解来初始化
            });

            Db.DbMaintenance.CreateDatabase();
            Db.CodeFirst.InitTables(typeof(Main));
            Db.CodeFirst.InitTables(typeof(Menu));
            Db.CodeFirst.InitTables(typeof(Role));
            Db.CodeFirst.InitTables(typeof(RoleMenu));
            Db.CodeFirst.InitTables(typeof(User));
            Db.CodeFirst.InitTables(typeof(UserRole));
            Db.CodeFirst.InitTables(typeof(Depment));
            Db.CodeFirst.InitTables(typeof(DepUser));


            //打印到控制台
            Db.Aop.OnLogExecuting = (sql, pars) =>
            {
                Console.WriteLine($"执行SQL:{sql},参数:{sql}");
            };
        }
    }
}
